Systems and user interfaces for dynamic access of multiple remote databases and synchronization of data based on user rules

ABSTRACT

A computing system is configured to access a plurality of remote databases in order to identify data inconsistencies between the remote databases and provide user interfaces to a user in order to initiate communication via one or more APIs to certain remote databases indicating updates that reconcile said data inconsistencies.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of application Ser. No. 14/548,016, filed Nov. 19, 2014, and claims priority benefit under 35 U.S.C. § 119(e) of U.S. Provisional Application No. 61/906,786, filed on Nov. 20, 2013, the disclosure of which is hereby incorporated by reference herein in its entirety.

TECHNICAL FIELD

Embodiments of present disclosure relate to systems and techniques for dynamic interactions with user information.

BACKGROUND

Generally, user computing devices and computing systems may facilitate the management of a user's personal data. For example, the user may have information stored in a plurality of remote databases, such as those used by various social networking sites, elastic on-demand storage systems (for example, cloud computing systems), or remote file sharing services, as well as the user's own personal computer or mobile device to store personal data and/or personal information. The user's use of the Internet may result in a wide distribution of the user's personal information to many different computing systems, devices, and other users. For example, social networking sites, online retailers, and/or blogs may contain personal information about the user.

Generally, when a user wishes to update profile information (e.g., address, phone number, etc.), for example, at a social networking site, credit monitoring service, blog, and/or other online service, the user will manually update the information at each of the sites, by logging into multiple sites and providing information for storage in the relevant databases of the multiple sites. Thus, if a user changes phone numbers, he may need to visit multiple websites and navigate to the profile change sections in each in order to make the same change to the phone number on the multiple sites. These tasks become redundant and, accordingly, the user may not make changes to all accounts. Additionally, such manual changes increase the risk of errors (e.g., typos) in the updated information provides to different entities.

SUMMARY

The systems, methods, and devices described herein each have several aspects, no single one of which is solely responsible for its desirable attributes. Without limiting the scope of this disclosure, several non-limiting features will now be described briefly.

Disclosed herein are systems and methods that automatically identify updated information associated with a user in one or more remote databases (e.g., databases associated with online web services) and determine updates to me made to other remote databases based on user rules for providing such automatic updates. Thus, the systems and methods disclosed herein may allow a user to update profile information of the user at not just a single website or entity, but with multiple entities, without requiring the user to communicate with each of the entities individually. In some embodiments, the methods disclosed herein are performed by a profile update system that has existing relationships and/or communication channels with multiple entities, such as financial institutions, government institutions, retail companies, and websites, for example. Accordingly, the profile update system may advantageously push any updates to the user's profile information to multiple entities with which the user has a relationship (e.g., an account) in order to implement such profile updates across the multiple entities. Such updates may be implemented, for example, via an application programming interface (API) that the plurality of remote database (also referred to generally as “partners” or “entities” herein) have access to. For example, a change to a user's information in a first remote database may be determined via access to the first remote database through an API, and changes in the user's information that are identified may be pushed to one or more other remote databases via the API.

The term “database,” as used herein, may refer to an database (e.g., RDBMS or SQL database), or may refer to any other data structure, such as, for example a comma separated values (CSV), eXtendible markup language (XML), TeXT (TXT) file, flat file, spreadsheet file, and/or any other widely used or proprietary format. In some embodiments, one or more of the databases or data sources may be implemented using a relational database, such as Sybase, Oracle, CodeBase and Microsoft® SQL Server as well as other types of databases such as, for example, a flat file database, an entity-relationship database, and object-oriented database, and/or a record-based database.

In some embodiments, a profile update system includes an update status module that communicates with remote databases to which updates were provided in order to track if/when the updates are implemented within those remote databases. The status of the updates may they then be provided to the user, such that the user can intervene in making updates if necessary (e.g., if a remote database associated with a particular user account is not recognizing an address update that the user wants to ensure is correct). Additionally, an update status user interface may include an option for re-requesting updates to the user's information, such as at the request of the user interfacing with the update status user interface, and/or may automatically re-request the profile information be updated at one or more remote databases at which the updates are not implemented within a predetermined time period.

In one embodiment, a computing system is configured to access a plurality of remote databases in order to identify data inconsistencies between the remote databases and provide user interfaces to a user in order to initiate communication via one or more APIs to certain remote databases indicating updates that reconcile said data inconsistencies. The computing system may include one or more storage devices configured to store electronic software instructions and one or more computer processors in communication with the storage device. The one or more computer processors may be configured to execute the stored software instructions to cause the computing system to automatically access first user information stored in one or more storage devices, the first user information including indications of each of a plurality of remote databases having data regarding a first user, the first user information including a plurality of first data fields and a corresponding plurality of first data values associated with respective first data fields, wherein at least some of the plurality of remote databases include matching first data values in particular first data fields, access a first remote database of the plurality of remote databases via one or more network connections and an application programming interface in communication with the first remote database, determine first remote data associated with the first user stored in the first remote database, compare the first remote data to the first user information by comparing each of a plurality of first data values in the first user information to corresponding remote data values of associated data fields in the first remote data, identify a particular first data value that does not match a corresponding remote data value for an associated data field, generate an interactive user interface for transmission to a remote user computing device, the interactive user interface including authentication prompts usable to authenticate an identity of the first user, receive input from the remote user computing device, and compare the input from the remote computing device to expected authentication information from the first user. In one embodiment, in response to determining that the expected authentication information from the first user matches the input from the remote computing device, authenticating the first user and: generate a second user interface for transmission to the remote user computing device, the second user interface including, the particular first data value, the corresponding remote data value, and an interactive user interface control usable by the first user to instruct the computing system to update the particular first data value in the first user information with the corresponding remote data value from the first remote data. In one embodiment, in response to receiving an indication via the second user interface that the first user selected the user interface control, replacing the particular first data value in the first user information with the corresponding remote data value from the first remote data, identifying a subset of the plurality of remote databases that each do not include the corresponding remote data value, generate a third user interface for transmission to the remote user computing device, the third user interface including an indication of at least some of the subset of remote databases and interactive user interface controls usable to select one or more of the subset of remote databases. In one embodiment, in response to receiving an indication of a selected one or more of the first subset of remote databases from the remote user computing device: determine access protocols for each of the selected one or more remote databases; and using the determined access protocols for respective of the selected one or more remote databases, transmitting the corresponding remote data value to each of the selected one or more remote databases in order to initiate updates at each of the selected one or more remote databases.

BRIEF DESCRIPTION OF THE DRAWINGS

The following drawings and the associated descriptions are provided to illustrate embodiments of the present disclosure and do not limit the scope of the claims. Aspects and many of the attendant advantages of this disclosure will become more readily appreciated as the same become better understood by reference to the following detailed description, when taken in conjunction with the accompanying drawings, wherein:

FIG. 1A illustrates an example interactive user interface including user profile information for an example user John Doe.

FIG. 1B illustrates an example interactive user interface including user profile information for an example user John Doe, and including login credentials for groups of sites.

FIG. 1C illustrates an example interactive user interface including secondary user profile information for the example user John Doe.

FIG. 2 illustrates an example interactive user interface that may be interacted with by a user in order to provide updates to profile information.

FIG. 3 illustrates an example interactive user interface that may be provided to the user in order to indicate changes to the user's profile that have been implemented (or not implemented) in various remote databases.

FIG. 4 illustrates an example interactive user interface that may be displayed on a mobile device providing similar update status information as that in FIG. 3.

FIG. 5A is a flow diagram illustrating an example workflow for the profile update system authenticating a user, identifying updates to profile information of the user (or receiving profile updates from the user), and providing updated information to a plurality of partners.

FIG. 5B is a flow diagram illustrating an example workflow for the profile update system accessing profile information via an API at a partner and then providing detected updates in the profile information to two other partners via an API.

FIG. 6 is a block diagram showing example components of a profile update system.

DETAILED DESCRIPTION

Although certain preferred embodiments and examples are disclosed below, inventive subject matter extends beyond the specifically disclosed embodiments to other alternative embodiments and/or uses and to modifications and equivalents thereof. Thus, the scope of the claims appended hereto is not limited by any of the particular embodiments described below. For example, in any method or process disclosed herein, the acts or operations of the method or process may be performed in any suitable sequence and are not necessarily limited to any particular disclosed sequence. Various operations may be described as multiple discrete operations in turn, in a manner that may be helpful in understanding certain embodiments; however, the order of description should not be construed to imply that these operations are order dependent. Additionally, the structures, systems, and/or devices described herein may be embodied as integrated components or as separate components. For purposes of comparing various embodiments, certain aspects and advantages of these embodiments are described. Not necessarily all such aspects or advantages are achieved by any particular embodiment. Thus, for example, various embodiments may be carried out in a manner that achieves or optimizes one advantage or group of advantages as taught herein without necessarily achieving other aspects or advantages as may also be taught or suggested herein.

Example Interactive User Interfaces

FIG. 1 illustrates an example user interface including user profile information 170 for an example user John Doe. In this example, the profile information 170 includes personal information, family information, professional information, and login information for a plurality of remote databases, such as websites or other secure data sources. As discussed further below, the user may maintain this profile as a master profile that, when updated, causes changes to be pushed to multiple entities, without further input from the user. The user profile may be generated in any manner, such as by the user entering the profile information, by crowdsourcing the user profile information, such as is disclosed in co-pending application Ser. No. 13/794,459, filed on Mar. 11, 2013, or via other profile building functionalities, such as those discussed in co-pending application Ser. No. 13/779,492, filed on Feb. 27, 2013, each of which is incorporated by reference in its entirety and for all purposes.

FIG. 1B illustrates an example interactive user interface including user profile information 172 for an example user John Doe. In this example, the database access credentials (e.g., usernames and passwords in this example) are categorized not by specific remote databases, but rather by categories of information that are maintained and accessible at those remote databases. In this particular example, a first username and password is usable at each of six different remote databases that provide “News/Sports Sites”. Similarly, a different username and password are usable at two remote databases that provide “Family” information to the user. Thus, as explained further below, the profile update system may access remote databases using access credentials that are shared among different types or categories of remote databases. Additionally, such categories may be usable by the profile update system to automatically determine which of a plurality of remote databases should be updated with new user profile information. For example, a first update to a user's profile information (e.g., that may be provided by the user himself or that may be automatically detected at a remote database) may be provided to a first category of remote databases (e.g. to all of the “News/Sports Sites”), while a second update to the user's profile information may be provided to a second category of remote databases, but not the first category of remote databases. Such selective updating of user profile information to different remote databases may be based on update rules provided by the user or may be determined based on input from a user at the time an update to profile information is provided by the user or detected by the profile update system.

FIG. 1C illustrates an example interactive user interface including secondary user profile information 174 for an example user John Doe. In this embodiment, the user has created a secondary profile that includes some differences in profile information than in the user's primary profile (e.g. the profiles illustrated in FIGS. 1A and 1B may be considered primary profiles). In some embodiments, a user may have different profile information that they would like to share with different remote databases and/or categories of remote databases. In the example of FIG. 1C, the secondary profile for John Doe includes Personal Information that is different than the Personal Information in the user's primary profile and does not include certain categories of information that are included in the user's primary profile. In one embodiment, the user can select which profile (e.g., a primary, secondary, tertiary, etc.) that the user would like to provide to selected remote databases or categories of remote databases. For example, the user may wish to provide the secondary profile to technical websites and databases, while providing the primary profile to other types of websites and/or databases. Depending on the embodiment, categorization of partners may be performed automatically by the profile update system (e.g., based on categorization provided by other users and/or keyword analysis that is automatically performed by the profile update system).

FIG. 2 illustrates an example user interface that may be displayed to a user in response to selecting the edit button with reference to the personal information section of information illustrated in FIG. 1A. As shown in FIG. 2, the user is offered the opportunity to update any of the personal information items by entering new/updated information in the text entry boxes. In other embodiments, information may be added and/or at edited in any other manner, such as using other user interface controls. In one embodiment, if the user makes changes to the profile data (e.g., by entering a new phone number in the text entry field), and then selects the submit button, the new phone number will be pushed out to each of multiple remote databases by the profile update system. In the embodiment of FIG. 2, the user has typed in a new email address (JD123@email.com). In some embodiments, the entities to which the updates are provided are automatically determined by the profile update system, such as based on information obtained from various data sources, including credit data, social network data, financial data, etc., that may be obtained from one or more data sources regarding the user. In some embodiments, the user may provide a list of remote databases for which data should be updated in response to changes to profile data. For example, with reference to FIG. 1 the user has provided login and password information for 3 websites. In one embodiment the user may select which of the 3 websites (or all 3 websites) that should receive updated profile information in response to updates to the profile information (e.g., using the user interface of FIG. 2).

Once the updates have been pushed to the various remote databases, the profile update system may track status of the updates at each of the (or at least some of the) remote databases and provide updates to the user. FIG. 3 is one example user interface that may be provided to the user in order to indicate changes to the user's profile that have been implemented (or not implemented) in various remote databases. In this example, the update status for John Doe's email change (illustrated in FIG. 2) is provided for each of three remote databases (websites in this example) to which the user requested the email address change be pushed. As noted above, the user may push updates to profile information to any number of entities (not limited to only websites), which may be automatically determined by the profile update system and/or provided by the user.

In the example of FIG. 3, the update status indicates that site 1 and site 2 (e.g., two different remote databases associated with partner websites) changed the email address for John Doe in response to the update request from the profile update system on November 15 and November 16, respectively. The status update also indicates that site 3 had not yet changed the email address for John Doe. In this embodiment, John Doe has the option of selecting a link to initiate resending of the updated email address request to site 3 by selecting the “re-send” link. In one embodiment, resending the updated email address causes the profile update system to transmit the profile update in the same manner as was previously provided to site 3. In other embodiments, resending the updated profile information is performed in a different manner. The user also has the option of selecting the “take me to site” link in order to be redirected to site 3, and possibly to the update profile section of site 3, so that the user can manually update the email address with site 3.

FIG. 4 is an example user interface that may be displayed on a mobile device providing similar update status information as that in FIG. 3, with similar options to allow the user to initiate resending of the update request to a particular site and/or be redirected to the site.

Example Workflow for Updating Remote Databases

FIG. 5A is a flow diagram illustrating an example workflow for the profile update system in authenticating a user, identifying updates to profile information of the user (or receiving profile updates from the user), and providing updated information to a plurality of partners. In the embodiment of FIG. 5A, the Profile Update System 100 may be controlled by any entity that has associations with multiple other entities to which profile update changes will likely need to be provided. Having such preexisting links with these entities makes it easier for the user to provide updated information to multiple entities, which the user may not even have an online account established with. A profile update application used by the user may be provided by the same entity that controls the profile update system 100. For example, the profile update app may be a downloadable application that can be installed on a mobile or desktop computer of the user and/or a browser viewable application that the user can interface with via a web browser.

In the embodiment of FIG. 5A, at a first action (indicated by the circled numeral “1”), the user is authenticated in order to confirm that that user is who they really say they are, and to reduce the risk of fraud in the profile update system pushing profile changes to accounts that are not authorized by the user (e.g., changes that are provided by a fraudster impersonating the user). In this embodiment, an authentication module 102 of the profile update system 100 initiates the authentication process, which may be a process that is carried out entirely by the profile update system 100 or which may include actions by a third-party, such as an authentication provider. Depending on the embodiment, the authentication may take various forms. For example, in one embodiment authentication may be based on “knowledge-based” questions that are asked of the user, wherein the questions are formed in such a way that only the particular user should know the answers. In one embodiment, authentication questions are asked based on information regarding the user located in credit data of the user. Such “out of wallet” questions are configured to solicit responses that include information highly likely to only be known by the user (and/or unlikely to be known by a fraudster), such as a monthly payment amount on an outstanding debt obligation which may appear on the user's credit report, the name or address of a particular loan servicer, the date that the last payment was posted to a credit account, and so on.

Once the user is authenticated (e.g., the user of the remote computing device provides answers to authentication questions, or other authentication information, indicating that the user really is the individual identified in the profile information), the user is given an opportunity to provide profile updates (action 2 of FIG. 5A). In this embodiment, an update module 104 interfaces with the user in order to receive profile updates from the user. As discussed below with reference to FIG. 5B, the update module 104 may also detect changes to the user's profile information at various remote databases and/or determine which other remote databases the detected profile update should be provided to.

In the example of FIG. 5A, the user desires to make a change to profile data that is relevant to profile data stored with multiple data sources/entities. As discussed above, in some embodiments the user may have a master profile stored with a particular service, such as a database maintained by the profile update system, and may make changes to that master profile in order to trigger pushing of changes to multiple remote databases. In other embodiments, the user may log into a website (or call a number associated with) the profile update system in order to initiate the process of pushing changes to the user's profile to multiple remote databases. In this embodiment, the user may not need to provide the full profile information, but rather may provide only the profile information that is to be changed (as well as any other information needed for authentication or other procedures performed by the profile update entity), such as an updated email address or telephone number.

In some circumstances, the user may be required to provide proof of the profile information change, such as by submitting a marriage certificate, death certificate, change of address verification, etc., in order for the profile update system to push the requested profile update to certain entities. For example, certain governmental institutions may require such proof of change before making profile updates regarding the user. Thus, depending on embodiment, the profile update system may forward the proof of change information to one or more entities and/or the entities may rely on the indication from the profile update system that the proof of change information was received and accurately indicated the requested profile update. In some embodiments, a third party that specializes in authenticating such information may be consulted by the profile update system 100 in order to determine whether the updates to the user's profile are legitimate.

At action 3 of FIG. 5A, the profile update system 100 pushes the indicated update to a plurality of remote databases of partners, such as financial institutions, governmental institutions, retail companies, and non-commerce companies, such as websites and social media applications. In other embodiments, any other entity may be included as a recipient of profile updates of the user.

The profile update system may then monitor the status of updates at the various entities, such as by accessing the website of those entities periodically in order to determine whether the requested profile updates have been made. As discussed above with reference to the FIGS. 3 and 4, for example, the user may be provided with various user interfaces indicating the status of profile updates and may be offered options for following up with partners that have not yet made the requested profile updates.

Depending on the embodiment, the user profile information may include various information about the user including, for example, the user's name, gender, age, ethnicity, handicaps, address, contact information, photo, employer, education, interests, and any other data associated with the user.

FIG. 5B is a flow diagram illustrating an example workflow for the profile update system 100 accessing profile information via an API at a partner 501 and then providing detected updates in the profile information to two other partners 502, 503 via an API. Beginning at action 1 in FIG. 5B, the profile update system 100 accesses user information at the partner 501 via an API, such as an API that is provided by the profile update system 100 and allows bidirectional communication between the partner 501 and the profile update system 100. Depending on the embodiment, various security protocols may be implemented in order to prevent unauthorized access to partners view the API. Use of any such currently available and/or later developed technologies or protocols are contemplated.

In other embodiments, other communication protocols and methods may be used in order for the profile update system 100 to obtain user information from the partner 501. For example, the profile update system 100 may query the partner 501 database periodically in order to access information from users that are registered with the profile update system 100, e.g., using login credentials provided by respective users. The profile update system 100 may then compare profile data for respective users from the partner 501 with profile data for the users stored at the profile update system 100 and/or profile information of the user at other partners, such as partners 502, 503.

At action 2 of FIG. 5B, the profile update system 100, such as the update module 104, determines if any updates to the user profile information should be pushed to any remote third-party databases. In one embodiment, the user establishes rules that are usable by the profile update system 100 in order to automatically determine which third-party databases should be updated with new profile information discovered at one or more partners. For example, rules may indicate that certain types or categories of information that are identified as new or changed information at certain specific or groups of remote databases (e.g., trusted databases) are automatically pushed to all other remote databases that require the update (e.g. all that have different information for the updated data field of the user). In other embodiments, the user is provided information on updates to the user's profile that are identified at partner 501 and provided an opportunity to indicate which of a plurality of other partners (e.g., partners 502, 503) to which the detected update should be provided. In one embodiment, the user is provided with a list of other partners that have different information in the updated data fields of the user's profile. The user may then select which of the remote databases to update with the identified profile information. Thus, in one embodiment the user can update profile information across multiple remote databases by updating profile information at a particular site so that the profile update system 100 automatically detects that update and initiates provision of the update to other remote databases. Accordingly, the user may not even need to access a website provided by the profile update system 100 in order to initiate changes to multiple remote databases having profile information of the user. The profile update system 100 may then push the detected profile update to partners 502, 503 via the API (or other communication technology). As noted above, in some embodiments rather than use of an API to access the user profile, the user provides authentication credentials (e.g., login and password) that are usable by the profile update system 100 to login to the users account and automatically update the user's profile information.

In one example embodiment, the user provides a profile update to a first partner 501 and the profile update system 100 automatically detects the update. The detected profile update may then be pushed to the user, such as via an application executing on the user's mobile device or a text message sent to the user's mobile device, with a request to authorize pushing of the detected update to all or some of the other remote databases that store profile information of these user (whether the remote databases are indicated by the user or are automatically detected by the profile update system 100, such as based on scanning of user profile databases of multiple partners, in order to identify remote databases having profile information for respective users). Thus, the user may be able to update profile information at any of multiple remote databases (e.g. of various websites or online services) in order to initiate and easily implement updates of those same profile updates to multiple remote databases.

At action 3 of FIG. 5B, a user interface (including graphical user interfaces, information provided to an application installed on a user device, text messages, etc.) may be provided to the user indicating status of profile updates at one or more remote databases to which the detected profile update has been pushed.

Example System Implementation and Architecture

FIG. 6 is a block diagram showing example components of a profile update system 100. The authentication module 102 and update module 104 of the system 100 may include software code configured for execution by the profile update system 100 to perform the various features discussed herein. Depending on the embodiment, the features discussed herein may be performed by a combination of computing devices, such as a server and a mobile computing device. The profile update system 100 may include these multiple devices.

The computing system 100 includes, for example, one or more personal computer that is Windows, Macintosh, or Linux/Unix compatible or a server or workstation. In one embodiment, the computing system 100 comprises a server, a laptop computer, a smart phone, a personal digital assistant, a kiosk, or a media player, for example. In one embodiment, the exemplary computing system 100 includes one or more central processing unit (“CPU”) 105, which may each include a conventional or proprietary microprocessor. The computing system 100 further includes one or more memory 130, such as random access memory (“RAM”) for temporary storage of information, one or more read only memory (“ROM”) for permanent storage of information, and one or more mass storage device 120, such as a hard drive, diskette, solid state drive, or optical media storage device. Typically, the modules of the computing system 100 are connected to the computer using a standard based bus system 180. In different embodiments, the standard based bus system could be implemented in Peripheral Component Interconnect (“PCI”), Microchannel, Small Computer System Interface (“SCSI”), Industrial Standard Architecture (“ISA”) and Extended ISA (“EISA”) architectures, for example. In addition, the functionality provided for in the components and modules of computing system 100 may be combined into fewer components and modules or further separated into additional components and modules.

The computing system 100 is generally controlled and coordinated by operating system software, such as Windows XP, Windows Vista, Windows 7, Windows 8, Windows Server, Unix, Linux, SunOS, Solaris, iOS, Blackberry OS, or other compatible operating systems. In Macintosh systems, the operating system may be any available operating system, such as MAC OS X. In other embodiments, the computing system 100 may be controlled by a proprietary operating system. Conventional operating systems control and schedule computer processes for execution, perform memory management, provide file system, networking, I/O services, and provide a user interface, such as a graphical user interface (“GUI”), among other things.

The exemplary computing system 100 may include one or more commonly available input/output (I/O) devices and interfaces 110, such as a keyboard, mouse, touchpad, and printer. In one embodiment, the I/O devices and interfaces 110 include one or more display devices, such as a monitor, that allows the visual presentation of data to a user. More particularly, a display device provides for the presentation of GUIs, application software data, and multimedia presentations, for example. The computing system 100 may also include one or more multimedia devices 140, such as speakers, video cards, graphics accelerators, and microphones, for example.

In the embodiment of FIG. 6, the I/O devices and interfaces 110 provide a communication interface to various external devices. In the embodiment of FIG. 6, the computing system 100 is electronically coupled to one or more networks, which comprise one or more of a LAN, WAN, and/or the Internet, for example, via a wired, wireless, or combination of wired and wireless, communication link. The networks communicate with various computing devices and/or other electronic devices via wired or wireless communication links, such as the various entities to which updated profile information is to be sent.

In general, the word “module,” as used herein, refers to logic embodied in hardware or firmware, or to a collection of software instructions, possibly having entry and exit points, written in a programming language, such as, for example, Java, Lua, C or C++. A software module may be compiled and linked into an executable program, installed in a dynamic link library, or may be written in an interpreted programming language such as, for example, BASIC, Perl, or Python. It will be appreciated that software modules may be callable from other modules or from themselves, and/or may be invoked in response to detected events or interrupts. Software modules configured for execution on computing devices may be provided on a computer readable medium, such as a compact disc, digital video disc, flash drive, or any other tangible medium. Such software code may be stored, partially or fully, on a memory device of the executing computing device, such as the computing system 100, for execution by the computing device. Software instructions may be embedded in firmware, such as an EPROM. It will be further appreciated that hardware modules may be comprised of connected logic units, such as gates and flip-flops, and/or may be comprised of programmable units, such as programmable gate arrays or processors. The modules described herein are preferably implemented as software modules, but may be represented in hardware or firmware. Generally, the modules described herein refer to logical modules that may be combined with other modules or divided into sub-modules despite their physical organization or storage. As noted above, the authentication module 102 may initiate and/or perform authentication of a user, primarily to determine whether the user that is requesting profile information and/or providing profile information really is the user identified in such information. The update module 104 may perform various tasks, such as interfacing with a user to receive updates to profile information, comparing updates to profile information stored at the profile update system 100 and/or at one or more other remote databases, and determine which remote databases profile updates should be provided to (whether such profile updates are automatically detected by the update module 104 or the updates are provided directly from an authenticated user). These modules may perform fewer or additional tasks in various embodiments. Similarly, the modules may be stored and executed on separate computing devices, even computing devices that are not co-located.

Additional Embodiments

Each of the processes, methods, and algorithms described in the preceding sections may be embodied in, and fully or partially automated by, code modules executed by one or more computer systems or computer processors comprising computer hardware. The code modules may be stored on any type of non-transitory computer-readable medium or computer storage device, such as hard drives, solid state memory, optical disc, and/or the like. The systems and modules may also be transmitted as generated data signals (for example, as part of a carrier wave or other analog or digital propagated signal) on a variety of computer-readable transmission mediums, including wireless-based and wired/cable-based mediums, and may take a variety of forms (for example, as part of a single or multiplexed analog signal, or as multiple discrete digital packets or frames). The processes and algorithms may be implemented partially or wholly in application-specific circuitry. The results of the disclosed processes and process steps may be stored, persistently or otherwise, in any type of non-transitory computer storage such as, for example, volatile or non-volatile storage.

The various features and processes described above may be used independently of one another, or may be combined in various ways. All possible combinations and sub-combinations are intended to fall within the scope of this disclosure. In addition, certain method or process blocks may be omitted in some implementations. The methods and processes described herein are also not limited to any particular sequence, and the blocks or states relating thereto can be performed in other sequences that are appropriate. For example, described blocks or states may be performed in an order other than that specifically disclosed, or multiple blocks or states may be combined in a single block or state. The example blocks or states may be performed in serial, in parallel, or in some other manner. Blocks or states may be added to or removed from the disclosed example embodiments. The example systems and components described herein may be configured differently than described. For example, elements may be added to, removed from, or rearranged compared to the disclosed example embodiments.

Conditional language, such as, among others, “can,” “could,” “might,” or “may,” unless specifically stated otherwise, or otherwise understood within the context as used, is generally intended to convey that certain embodiments include, while other embodiments do not include, certain features, elements and/or steps. Thus, such conditional language is not generally intended to imply that features, elements and/or steps are in any way required for one or more embodiments or that one or more embodiments necessarily include logic for deciding, with or without user input or prompting, whether these features, elements and/or steps are included or are to be performed in any particular embodiment.

Any process descriptions, elements, or blocks in the flow diagrams described herein and/or depicted in the attached figures should be understood as potentially representing modules, segments, or portions of code which include one or more executable instructions for implementing specific logical functions or steps in the process. Alternate implementations are included within the scope of the embodiments described herein in which elements or functions may be deleted, executed out of order from that shown or discussed, including substantially concurrently or in reverse order, depending on the functionality involved, as would be understood by those skilled in the art.

All of the methods and processes described above may be embodied in, and partially or fully automated via, software code modules executed by one or more general purpose computers. For example, the methods described herein may be performed by the computing system and/or any other suitable computing device. The methods may be executed on the computing devices in response to execution of software instructions or other executable code read from a tangible computer readable medium. A tangible computer readable medium is a data storage device that can store data that is readable by a computer system. Examples of computer readable mediums include read-only memory, random-access memory, other volatile or non-volatile memory devices, CD-ROMs, magnetic tape, flash drives, and optical data storage devices.

It should be emphasized that many variations and modifications may be made to the above-described embodiments, the elements of which are to be understood as being among other acceptable examples. All such modifications and variations are intended to be included herein within the scope of this disclosure. The foregoing description details certain embodiments. It will be appreciated, however, that no matter how detailed the foregoing appears in text, the systems and methods can be practiced in many ways. As is also stated above, it should be noted that the use of particular terminology when describing certain features or aspects of the systems and methods should not be taken to imply that the terminology is being re-defined herein to be restricted to including any specific characteristics of the features or aspects of the systems and methods with which that terminology is associated. 

What is claimed is:
 1. A computing system comprising: one or more storage devices configured to store electronic software instructions; and one or more computer processors in communication with the one or more storage devices, the one or more computer processors configured to execute the stored electronic software instructions to cause the computing system to automatically: access, over a network, user information stored in the one or more storage devices, the user information including master data values associated with respective data fields; access a first remote database of a plurality of remote databases over the network; determine first remote data associated with a user stored in the first remote database; compare the first remote data to the user information by comparing the master data values in the user information to corresponding remote data values of remote data fields; identify a particular master data value in a particular data field that do not include a corresponding remote data value in an associated remote data field; identify a subset of the plurality of remote databases that each do not include the corresponding remote data value, said identifying comprising, for each of the plurality of remote databases: accessing a remote database using security protocols and/or communication protocols, over the network; determining that the corresponding remote data value is not included in a remote data field in the remote database corresponding to the remote data value; and in response to determining that the remote data value is not included in the remote data field, including the remote database in the subset of remote databases; generate a user interface for transmission to a remote user computing device, the user interface including: an indication of the subset of remote databases; and an interactive user interface control usable to select one or more of the subset of remote databases; and in response to receiving the indication of a selected one or more of the subset of remote databases from the remote user computing device, for each of the one or more selected remote databases: determine the security protocols and/or communication protocols; and using the determined security protocols and/or communication protocols, initiate an update for the one or more selected remote databases.
 2. The computing system of claim 1, wherein said accessing the first remote database comprises: accessing access information in the one or more storage devices, the access information indicating one or more communication parameters for accessing the first remote database.
 3. The computing system of claim 2, wherein the one or more communication parameters comprise APIs, security protocols and/or communication protocols used to communicate to the first remote database over the network.
 4. The computing system of claim 1, wherein the network comprises one or more of: LAN, WAN, or Internet.
 5. The computing system of claim 1, wherein the one or more computer processors configured to execute the stored electronic software instructions further cause the computing system to automatically: receive from the user a selection of a master profile of a plurality of master profiles; and update the master data values based on data values of the selected mater profile.
 6. The computing system of claim 1, wherein the one or more computer processors configured to execute the stored electronic software instructions further cause the computing system to automatically: track a status of updates for each remote databases in the subset of remote databases.
 7. The computing system of claim 1, wherein to initiate the update for the one or more selected remote databases comprises sending a link, for the one or more selected remote databases, to the user to redirect the user to a website to update the remote database.
 8. A method comprising: accessing, over a network, user information stored in one or more storage devices, the user information including master data values associated with respective data fields; accessing a first remote database of a plurality of remote databases over the network; determining first remote data associated with a user stored in the first remote database; comparing the first remote data to the user information by comparing the master data values in the user information to corresponding remote data values of remote data fields; identifying a particular master data value in a particular data field that does not include a corresponding remote data value in an associated remote data field; identifying a subset of the plurality of remote databases that each do not include the corresponding remote data value, said identifying comprising, for each of the plurality of remote databases: accessing a remote database using security protocols and/or communication protocols, over the network; determining that the corresponding remote data value is not included in the remote data field in the remote database corresponding to the remote data value; in response to determining that the remote data value is not included in the remote data field, including the remote database in the subset of remote databases; determining security protocols and/or communication protocols; applying one or more rules to the subset of the plurality of remote databases to identify one or more remote databases to receive an update; and using the determined security protocols and/or communication protocols, initiating the update for the remote database to the identified one or more remote databases to receive an update based on the one or more rules.
 9. The method of claim 8, wherein said accessing the first remote database comprises: accessing access information in the one or more storage devices, the access information indicating one or more communication parameters for accessing the first remote database.
 10. The method of claim 9, wherein the one or more communication parameters comprise APIs, security protocols and/or communication protocols used to communicate to the first remote database over the network.
 11. The method of claim 8, further comprising: receiving from the user a selection of a master profile of a plurality of master profiles; and updating the master data values based on data values of the selected mater profile.
 12. The method of claim 8, further comprising: tracking a status of updates for each remote databases in the subset of remote databases.
 13. The method of claim 8, wherein initiating an update comprises sending a link, for the one or more remote databases, to the user to redirect the user to a website to update the remote database.
 14. A non-transitory computer-readable medium storing instructions configured to cause one or more computer processors to perform operations comprising: accessing, over a network, user information stored in the one or more storage devices, the user information including master data values associated with respective data fields; accessing a first remote database of a plurality of remote databases over the network; determining first remote data associated with a user stored in the first remote database; identifying a particular master data value of the master data values that is not included in one or more remote data fields of the first remote data, wherein identifying the particular master data value includes; determining the one or more remote data fields of the first remote data associated with the user stored in the first remote database; comparing the at least one master data value with remote data values of the first remote data in the determined one or more remote data fields; determining that the determined one or more remote data fields of the first remote data do not include the at least one master data value; determining that the particular master data value of the at least one master data value is not included in the determined one or more remote data fields of the first remote data; identifying a subset of the plurality of remote databases that each do not include the particular master data value in a remote data field, wherein identifying the subset of the plurality of remote databases comprises, for each of the plurality of remote databases: accessing a remote database of the plurality of remote databases using security protocols and/or communication protocols over the network; identifying one or more remote data fields of the remote database; determining that the identified one or more remote data fields does not include the particular master data value; and in response to determining that the identified one or more remote data fields does not include the particular master data value, adding the remote database to the subset of remote databases; and for one or more of the remote databases: determining security protocols and/or communication protocols; identifying one or more remote databases that are accessible to be updated; and using the determined security protocols and/or communication protocols, initiating an update for the one or more remote databases that are accessible to be updated.
 15. The non-transitory computer-readable medium of claim 14, wherein said accessing the first remote database comprises: accessing access information in the one or more storage devices, the access information indicating one or more communication parameters for accessing the first remote database.
 16. The non-transitory computer-readable medium of claim 15, wherein the one or more communication parameters comprise APIs, security protocols and/or communication protocols used to communicate to the first remote database over the network.
 17. The non-transitory computer-readable medium of claim 14, wherein initiating an update for the one or more remote databases comprises pushing the update to at least one of the one or more remote databases.
 18. The non-transitory computer-readable medium of claim 14, wherein accessing a first remote database comprises pulling the first remote data from the first remote databases.
 19. The non-transitory computer-readable medium of claim 14, further comprising: receiving from the user a selection of a master profile of a plurality of master profiles; and updating the master data values based on data values of the selected mater profile.
 20. The non-transitory computer-readable medium of claim 14, further comprising: tracking a status of updates for each remote databases in the subset of remote databases. 